
package editor.ui
{
	import com.bit101.components.InputText;
	import com.bit101.components.Label;
	import com.bit101.components.List;
	import com.bit101.components.PushButton;
	import com.bit101.components.Window;
	import com.zero.framework.interfaces.INotification;
	import com.zero.framework.interfaces.INotifyResponder;
	import com.zero.framework.observer.Facade;
	
	import editor.Notification.M2VNotification;
	import editor.Notification.V2MNotification;
	import editor.common.AppFacade;
	import editor.common.Common;
	import editor.common.CursorManager;
	import editor.map.elements.Teleport;
	
	import flash.display.DisplayObjectContainer;
	import flash.events.Event;
	import flash.geom.Point;
	import flash.ui.MouseCursor;
	
	
	/**
	 * @author 缺硒
	 */
	public class GatesInfoWindow extends Window implements INotifyResponder
	{
//		private var _outGateBtn:PushButton;
//		private var _inGateBtn:PushButton;
//		private var _preGateBtn:PushButton;
//		private var _nextGateBtn:PushButton;
//		private var _outGateLabel:Label;
//		private var _inGateLabel:Label;
//		private var _preGateLabel:Label;
//		private var _nextGateLabel:Label;
//		private var _inX:Label;
//		private var _inY:Label;
//		private var _outX:Label;
//		private var _outY:Label;
//		private var _preX:Label;
//		private var _preY:Label;
//		private var _nextX:Label;
//		private var _nextY:Label;
//		
//		private var _preOk:PushButton;
//		private var _nextOk:PushButton;
//		private var _preTo:InputText;
//		private var _nextTo:InputText;
//		private var _gatesList:List;
		
//		//进城点是否已增加
//		private var _isInOK:Boolean = false;
//		//出城点是否已增加
//		private var _isOutOK:Boolean = false;
//		
//		private var _isPreOK:Boolean = false;
//		
//		private var _isNextOK:Boolean = false;
//		
//		private var _inPoint:Point 		= new Point();
//		private var _outPoint:Point 	= new Point();
//		private var _prePoint:Point 	= new Point();
//		private var _nextPoint:Point 	= new Point();
		
		private var _gateList:List;
		private var _addLinkBtn:PushButton;
		private var _delGateBtn:PushButton;
		private var _addInGateBtn:PushButton;
		
		// 构造函数
		public function GatesInfoWindow(parent:DisplayObjectContainer, xpos:Number=0, ypos:Number=0, title:String="传送门")
		{
			AppFacade.getIntance().registerResponder(this);
			
			super(parent, xpos, ypos, title);
			setSize(120, 300);
			
			
			_gateList = new List(this, 10, 10);
			_gateList.height = 150;
			
			_addLinkBtn = new PushButton(this, 10, 170, "添加链接门", onAddLinkGate);
			_addInGateBtn = new PushButton(this, 10, 200, "添加进城门", onAddInGate);
			_delGateBtn = new PushButton(this, 10, 230, "删除", onDelGate);
			
//			_inGateLabel 	= new Label(this, 10, 10, "进城点:");
//			_inX 			= new Label(this, 10, 30, "X:");
//			_inY 			= new Label(this, 60, 30, "Y:");
//			_inGateBtn 		= new PushButton(this, 10, 55, "增加", onInBtn);
//			
//			
//			_preGateLabel	= new Label(this, 10, 85, "前传送点:");
//			_preGateBtn		= new PushButton(this, 10, 105, "增加", onPreBtn);
//			_preTo			= new InputText(this, 60, 85);
//			_preTo.setSize(30,18);
//			_preOk			= new PushButton(this, 95, 85, "ok", onPreName);
//			_preOk.setSize(23, 18);
//			
//			_nextGateLabel	= new Label(this, 10, 125, "下传送点:");
//			_nextGateBtn    = new PushButton(this, 10, 145, "增加", onNextBtn);
//			_nextTo			= new InputText(this, 60, 125);
//			_nextTo.setSize(30,18);
//			_nextOk			= new PushButton(this, 95, 125, "ok", onNextName);
//			_nextOk.setSize(23, 18);
//			
//			_gatesList = new List(this, 10, 160);
		}
		
		public function get notificationList():Array
		{
			return [
//				M2VNotification.UPDATE_GATES_INFO,
//				M2VNotification.ADD_IN_OK,
//				M2VNotification.ADD_PRE_OK,
//				M2VNotification.ADD_NEXT_OK
			];
		}
		
		public function notifyHandler(notification:INotification):void
		{
			var data:Object = notification.getBody();
//			switch(notification.getName())
//			{
//				case M2VNotification.UPDATE_GATES_INFO:
//					
//					_inPoint.x = data.inX;
//					_inPoint.y = data.inY;
//					
//					_outPoint.x = data.outX;
//					_outPoint.y = data.outY;
//					
//					_nextPoint.x = data.nextX;
//					_nextPoint.y = data.nextY;
//					
//					_prePoint.x = data.preX;
//					_prePoint.y = data.preY;
//					
//					_inX.text = "X: " + data.inX.toString();
//					_inY.text = "Y: " + data.inY.toString();
//					
////					_nextX.text = "X: " + data.outX.toString();
////					_outY.text = "Y: " + data.outY.toString();
////					
////					_outX.text = "X: " + data.outX.toString();
////					_outY.text = "Y: " + data.outY.toString();
//					break;
//				case M2VNotification.ADD_IN_OK:
//					_isInOK = true;
//					_inGateBtn.label = "定位";
//					break;
//				case M2VNotification.ADD_PRE_OK:
//					_isPreOK = true;
//					_preGateBtn.label = "定位";
//					break;
//				case M2VNotification.ADD_NEXT_OK:
//					_isNextOK = true;
//					_nextGateBtn.label = "定位";
//					break;
//				default:
//					new Error(Facade.ERROR_NOTIFICATION_NOT_SEEN);
//					break;
//			}
		}
		
		public function onAddLinkGate(e:Event):void
		{
			Common.cursor.state = CursorManager.STATE_ADD_LINK;
		}
		
		public function onAddInGate(e:Event):void
		{
			Common.cursor.state = CursorManager.STATE_ADD_IN;
		}
				
		public function onDelGate(e:Event):void
		{
			
		}
//		public function initGateUI():void
//		{
//			if(Common.map.npcLayer.inGate != null)
//			{
//				_isInOK = true;
//				_inGateBtn.label = "定位";
//			}
//			else
//			{
//				_isInOK = false;
//				_inGateBtn.label = "确定";
//			}
//			
//			if(Common.map.npcLayer.preGate != null)
//			{
//				_isPreOK = true;
//				_preGateBtn.label = "定位";
//				_preTo.text = Common.map.npcLayer.preGate.toId;
//			}
//			else
//			{
//				_isPreOK = false;
//				_preGateBtn.label = "确定";
//			}
//			
//			if(Common.map.npcLayer.nextGate != null)
//			{
//				_isNextOK = true;
//				_nextGateBtn.label = "定位";
//				_nextTo.text = Common.map.npcLayer.nextGate.toId;
//			}
//			else
//			{
//				_isNextOK = false;
//				_nextGateBtn.label = "确定";
//			}
//		}
//		
//		/**
//		 * 更新门列表 
//		 */		
//		public function updateGatesList():void
//		{
//			var list:Vector.<Teleport> = Common.map.npcLayer.gateList;
//			try{
//				this.content.removeChild(_gatesList);
//			}catch(e:Error){}
//			
//			if(list.length != 0)
//			{
//				for(var i:int = 0; i < list.length ; i ++)
//				{
//					var gate:Teleport = list[i];
//					if(gate is Teleport)
//						_gatesList.addItem({label:"传送点 : " + gate.toId, index:i});
//				}
//			}
//		}
//		
//		private function onPreName(e:Event):void
//		{
//			var preGate:Teleport = Common.map.npcLayer.preGate;
//			if(preGate != null && _preTo.text != "")
//			{
//				preGate.toId = _preTo.text;
//			}
//		}
//		
//		private function onNextName(e:Event):void
//		{
//			var nextGate:Teleport = Common.map.npcLayer.nextGate;
//			if(nextGate != null && _nextTo.text != "")
//			{
//				nextGate.toId = _nextTo.text;
//			}
//		}
//		
//		private function onPreBtn(e:Event):void
//		{
//			if(_isPreOK == false)
//			{
//				CursorManager.getInstance().state = CursorManager.STATE_ADD_PRE;
//			}
//			else
//			{
//				AppFacade.getIntance().sendNotification(V2MNotification.SET_MAP_VIEW,
//					{
//						vx:_prePoint.x,
//						vy:_prePoint.y
//					});
//			}
//		}
//		
//		private function onNextBtn(e:Event):void
//		{
//			if(_isNextOK == false)
//			{
//				CursorManager.getInstance().state = CursorManager.STATE_ADD_NEXT;
//			}
//			else
//			{
//				AppFacade.getIntance().sendNotification(V2MNotification.SET_MAP_VIEW,
//					{
//						vx:_nextPoint.x,
//						vy:_nextPoint.y
//					});
//			}
//		}
//		
//		private function onOutBtn(evt:Event):void
//		{
//			if(_isOutOK == false)
//			{
//				CursorManager.getInstance().state = CursorManager.STATE_ADD_OUT;
//			}
//			else
//			{
//				AppFacade.getIntance().sendNotification(V2MNotification.SET_MAP_VIEW,
//					{
//						vx:_outPoint.x,
//						vy:_outPoint.y
//					});
//			}
//		}
//		
//		private function onInBtn(evt:Event):void
//		{
//			if(_isInOK == false)
//			{
//				CursorManager.getInstance().state = CursorManager.STATE_ADD_IN;
//			}
//			else
//			{
//				AppFacade.getIntance().sendNotification(V2MNotification.SET_MAP_VIEW,
//					{
//						vx:_inPoint.x,
//						vy:_inPoint.y
//					});
//			}
//		}
		//
		
	}
}